﻿namespace Blaze.Editor.Analysing
{
//    using System.Collections.Generic;
//    using System.IO;
//    using System.Linq;
//    using Aspose.Cells;
//    using Framework;
//
//    /// <summary>
//    /// Apk分析报告。
//    /// </summary>
//    public class ApkReport
//    {
//        public List<EntryInfo> Entries
//        {
//            get { return mEntries; }
//        }
//
//        public void Add(EntryInfo fileInfo)
//        {
//            mEntries.Add(fileInfo);
//        }
//
//        public void Save(string filePath)
//        {
//            var templateFilePath = ProjectPath.GetProjectPath("Assets/Blaze/Editor/EditorResources/ApkReportTemplate.xlsx");
//            File.Copy(templateFilePath, filePath, true);
//
//            var workbook = new Workbook(filePath);
//            var worksheet = workbook.Worksheets["分析报告"];
//            fillAssetsTable(worksheet);
//            fillStatisticTable(worksheet);
//            workbook.Save(filePath);
//        }
//
//        private void fillAssetsTable(Worksheet worksheet)
//        {
//            var table = worksheet.ListObjects["资源清单表"];
//            table.Resize(0, 0, mEntries.Count, 4, true);
//            //类别,文件,大小,压缩后大小,压缩比
//            for (var index = 0; index < mEntries.Count; index++)
//            {
//                var entry = mEntries[index];
//                table.DataRange[index, 0].Value = entry.Category;
//                table.DataRange[index, 1].Value = entry.Name;
//                table.DataRange[index, 2].Value = entry.UncompressedSize;
//                table.DataRange[index, 3].Value = entry.CompressedSize;
//                table.DataRange[index, 4].Value = entry.CompressRate;
//            }
//        }
//
//        private void fillStatisticTable(Worksheet worksheet)
//        {
//            var statisticTable = worksheet.ListObjects["资源统计表"];
//            var query = from entry in mEntries
//                group entry by entry.Category
//                into g
//                select g;
//            var categoryGroups = query.ToArray();
//            statisticTable.Resize(statisticTable.StartRow, statisticTable.StartColumn, categoryGroups.Length, statisticTable.EndColumn, true);
//            for (var index = 0; index < categoryGroups.Length; index++)
//            {
//                var item = categoryGroups[index];
//                statisticTable.DataRange[index, 0].Value = item.Key;
//            }
//        }
//
//        private readonly List<EntryInfo> mEntries = new List<EntryInfo>();
//    }
}